From 2d7b9273cf7e8ac91153058819e24c5cf084f090 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 5 Apr 2014 11:43:43 -0400 Subject: [PATCH] window: Be more careful when propagating key events We are keeping references on the widget we are handling as we are iterating up, but that doesn't protect us against the entire tree being axed from inside gtk_widget_handle_event. https://bugzilla.gnome.org/show_bug.cgi?id=727644 --- gtk/gtkwindow.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index d7911869bf..b6f6997f34 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -7613,7 +7613,11 @@ gtk_window_propagate_key_event (GtkWindow *window, GtkWidget *parent; if (gtk_widget_is_sensitive (focus)) - handled = gtk_widget_event (focus, (GdkEvent*) event); + { + handled = gtk_widget_event (focus, (GdkEvent*) event); + if (handled) + break; + } parent = gtk_widget_get_parent (focus); if (parent) -- 2.30.2